package com.aiwhose.aiwhosecore.bean.system;

import com.aiwhose.aiwhosecore.bean.BaseEntity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigInteger;
import java.time.LocalDateTime;

import com.mybatisflex.core.keygen.KeyGenerators;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.EqualsAndHashCode;
import java.io.Serial;

/**
 * 轮播图 实体类。
 *
 * @author 田国刚
 * @since 1.0.1
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Schema(description = "轮播图")
@Table(value = "banner")
public class Banner extends BaseEntity implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Id(keyType = KeyType.Generator, value = KeyGenerators.snowFlakeId)
    @Schema(description = "")
    private String id;

    /**
     * banner地址
     */
    @Schema(description = "banner地址")
    private String bannerUrl;

    /**
     * 横幅名称
     */
    @Schema(description = "横幅名称")
    private String name;

    /**
     * banner类型
     */
    @Schema(description = "banner类型")
    private String type;

    /**
     * 跳转地址
     */
    @Schema(description = "跳转地址")
    private String jumpUrl;

    /**
     * 顺序
     */
    @Schema(description = "顺序")
    private Long sequence;

    /**
     * 显示失败时的文字内容
     */
    @Schema(description = "显示失败时的文字内容")
    private String altText;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    @Schema(description = "结束时间")
    private LocalDateTime endTime;

    /**
     * 状态 (0: 禁用, 1: 启用)
     */
    @Schema(description = "状态 (0: 禁用, 1: 启用)")
    private Integer status;

    /**
     * 点击次数
     */
    @Schema(description = "点击次数")
    private Long clickCount;

    /**
     * 描述
     */
    @Schema(description = "描述")
    private String description;


}
